跳到主要内容

长任务与状态

checkpoint 断点续跑、time-travel 调试、跨 session handoff 与 durable execution 如何保障长任务可靠

核心要点

  • checkpoint/resume:状态快照,崩溃后续跑
  • time-travel:回历史点重跑或 fork 分支
  • session 化:用 handoff artifact 跨会话续跑
  • initializer + coding 两段式 harness
  • durable execution:事件溯源保证多年可靠

本文讲长任务的状态管理。跨会话记忆的 handoff 文档与 compaction 见 03-记忆系统,本文聚焦执行状态的 checkpoint 与恢复。

checkpoint/resume 怎么让长任务不怕崩?

核心问题:agent 跑到一半进程挂了,怎么不从头再来?

把执行状态序列化到持久存储,崩溃后从最近快照接续。核心数据结构是 (thread_id, checkpoint_id, parent_checkpoint_id, state)——执行中途持续打快照,恢复时从最近的 checkpoint 重新接上[1]

LangGraph 用 Postgres checkpointer 支撑并发场景,把每一步的状态落盘。这让长任务获得"断点续跑"能力:不是把整个任务重头跑一遍,而是从挂掉前的最后一个稳定状态继续。可借鉴的判断:任何会跑很久、可能中途失败的 agent,都该有 checkpoint

time-travel 有什么用?

核心问题:checkpoint 除了崩溃恢复,还能干什么?

time-travel 让你回到任意历史 checkpoint 重跑、fork 分支或改状态后续跑[1]。它把 checkpoint 从"灾备"升级成"调试与探索"工具。

三种操作:

  • replay(重放):从某个历史点重跑,观察行为。
  • fork(分叉):从历史 checkpoint 创建新 thread,走不同分支。
  • state editing(改状态):resume 前修改 state,纠正一个错误决策再继续。

典型用法:回到步骤 15 修正步骤 17 出错的决策,而无需重跑整个任务。可借鉴价值:checkpoint 不只防崩溃,还让"从中途换条路再试"变得廉价

session 化怎么跨会话续跑?

核心问题:任务长到超过单次会话,状态怎么传下去?

把长任务切成多个 session,每个 session 结束生成结构化 handoff artifact,下个 session 从 artifact 恢复[2]。这避免了重放整段 token 历史。

handoff artifact 是语义层的状态摘要:已完成子任务、待办、当前决策约束。新 session 读它恢复,而非回放原始对话。这与 03-记忆系统 的 handoff 文档是同一机制的两个视角——记忆系统讲它如何承载状态,本文讲它如何支撑长任务编排。Anthropic 的数据印证:对 context anxiety 强的模型,context reset(配 handoff)比单纯 compaction 更关键。

initializer + coding 两段式是什么?

核心问题:长任务的 harness 怎么组织,才能逐 session 稳定推进?

Anthropic 的两段式:initializer 把简短 prompt 展开为 spec + 任务清单,coding agent 逐 session 增量执行[2]。两个角色分工明确。

  • initializer:一次性把简短需求展开成详细 spec 和任务列表,搭好结构化环境。
  • coding agent:每个 session 接收 spec + 上一轮 handoff artifact,执行一批任务,输出新 artifact。
  • evaluator(可选):用测试(如 Playwright)打分验证。

跨 session 的连续性靠两条锚点:git history 记录客观代码状态,handoff artifact 记录主观决策进度。可借鉴的设计:把"规划环境"和"逐步执行"拆成两个角色,前者只跑一次、后者可重复接力

durable execution 怎么保证可靠?

核心问题:比 checkpoint 更强的可靠性保证长什么样?

durable execution 用事件溯源(event sourcing)替代状态快照,崩溃后重放事件历史恢复[3]。Temporal 是代表:它记录每个动作的 Event History,恢复时从头重放 workflow 代码,已完成的 Activity 直接复用结果。

这套机制能保证"即使基础设施失败,workflow 仍能跑数年"。核心约束是 workflow 代码必须确定性,所有外部 I/O 封装成 Activity——这与 05-确定性workflow 的确定性要求一脉相承。它与 checkpoint 的区别:checkpoint 存"当前状态",事件溯源存"如何到达当前状态",后者恢复更稳但要求代码可重放。

Takeaway

知识点核心结论
checkpoint/resume状态快照落盘,崩溃从最近点续跑
time-travelreplay / fork / 改状态,调试与换路探索
session 化handoff artifact 承载语义状态,不重放 token 历史
两段式 harnessinitializer 展开 spec,coding agent 逐 session 接力
durable execution事件溯源 + 确定性代码,保证多年可靠

参考资料

  1. LangChain. LangGraph: Persistence and Time Travel. 2025. https://langchain-ai.github.io/langgraph/concepts/persistence/
  2. Anthropic. Harness design for long-running application development. 2025. https://www.anthropic.com/engineering/harness-design-long-running-apps
  3. Temporal. Workflows and Durable Execution. 2025. https://docs.temporal.io/workflows

延伸阅读